#include "FsmAIState.h"
#include "FsmAI.h"

void FsmAIStateIdle::onEvent(FsmAI *ai, FSM_AI_EVENT event, EventParam* param)
{
    switch (event)
    {
    case FSM_AI_EVENT::AI_EVENT_THREAT_FIRST_ADD:
        if (ai->hasLogic(FSM_AI_LOGIC::AI_LOGIC_WARNNING))
            ai->changeState(FSM_AI_STATE::AI_WARNNING);
        else if (ai->hasLogic(FSM_AI_LOGIC::AI_LOGIC_ATTACK))
            ai->changeState(FSM_AI_STATE::AI_ATTACK);
        break;
    default:
        break;
    }
}

void FsmAIStateIdle::enter(FsmAI *ai)
{
    
}

void FsmAIStateIdle::leave(FsmAI* ai)
{
    
}

void FsmAIStateIdle::pulse(FsmAI* ai, UINT tm)
{
    
}

void FsmAIStateChase::enter(FsmAI* ai)
{

}

void FsmAIStateChase::leave(FsmAI* ai)
{
    
}

void FsmAIStateChase::pulse(FsmAI* ai, UINT tm)
{
    
}

void FsmAIStateAttack::enter(FsmAI* ai)
{

}

void FsmAIStateAttack::leave(FsmAI* ai)
{
    
}

void FsmAIStateAttack::pulse(FsmAI* ai, UINT tm)
{
    
}

void FsmAIStateBack::enter(FsmAI* ai)
{

}

void FsmAIStateBack::leave(FsmAI* ai)
{
    
}

void FsmAIStateBack::pulse(FsmAI* ai, UINT tm)
{
    
}


void FsmAIStateFlee::enter(FsmAI* ai)
{

}

void FsmAIStateFlee::leave(FsmAI* ai)
{
    
}

void FsmAIStateFlee::pulse(FsmAI* ai, UINT tm)
{
    
}

void FsmAIStateDisperse::enter(FsmAI* ai)
{

}

void FsmAIStateDisperse::leave(FsmAI* ai)
{
    
}

void FsmAIStateDisperse::pulse(FsmAI* ai, UINT tm)
{
    
}

void FsmAIStateTeamFollow::enter(FsmAI* ai)
{

}

void FsmAIStateTeamFollow::leave(FsmAI* ai)
{
    
}

void FsmAIStateTeamFollow::pulse(FsmAI* ai, UINT tm)
{
    
}

void FsmAIStatePlayAct::enter(FsmAI* ai)
{

}

void FsmAIStatePlayAct::leave(FsmAI* ai)
{
    
}

void FsmAIStatePlayAct::pulse(FsmAI* ai, UINT tm)
{
    
}

void FsmAIStateScaring::enter(FsmAI* ai)
{

}

void FsmAIStateScaring::leave(FsmAI* ai)
{
    
}

void FsmAIStateScaring::pulse(FsmAI* ai, UINT tm)
{
    
}